package com.zmn.plat.model.entity.orderconfig.distribute;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.text.MessageFormat;
import java.util.Date;
import java.util.List;
import java.util.Objects;

/**
 * 类描述：派单参数配置平台配置实体
 *
 * @author mujunlin
 * @version v1.0
 * @since 2019/10/17 11:24
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DistributeWeightPlat implements Serializable {

    /**
     * 主键
     */
    private Integer distributePlatId;

    /**
     * 平台标志：1言而有信, 2啄木鸟, 3一步生活, 4川南环保
     */
    private Integer plat;

    /**
     * 省ID
     */
    private Integer provinceId;

    /**
     * 省名称
     */
    private String provinceName;

    /**
     * 市ID
     */
    private Integer cityId;

    /**
     * 市名称
     */
    private String cityName;

    /**
     * 业务类型：1C2F3B
     */
    private Integer bizType;

    /**
     * 距离比重
     */
    @Deprecated
    private Integer distanceWeight;

    /**
     * 手头单比重
     */
    @Deprecated
    private Integer handlerWeight;

    /**
     * 当日完成单比重
     */
    @Deprecated
    private Integer daySuccessWeight;

    /**
     * 上门率比重
     */
    @Deprecated
    private Integer visitRateWeight;

    /**
     * 成功率比重
     */
    @Deprecated
    private Integer successRateWeight;

    /**
     * 客单价比重
     */
    @Deprecated
    private Integer avtAmountWeight;

    /**
     * 用户评价比重
     */
    @Deprecated
    private Integer commentWeight;

    /**
     * 新单简单派单：1停用，2启用
     */
    private Integer newSimpleStatus;

    /**
     * 新单后门开关：1停用，2启用
     */
    // TODO mujunlin 为了兼容老接口，上线后需删除
    private Integer backdoorStatus;

    /**
     * 系统推荐派单：1停用，2启用
     */
    // TODO mujunlin 为了兼容老接口，上线后需删除
    private Integer recommendStatus;

    /**
     * 新单自动派单：1停用，2推荐自动派单，3指定工程师自动派单，4公平自动派单
     */
    private Integer autoStatusNew;

    /**
     * 返修自动派单：1停用，2源工程师自动派
     */
    private Integer autoStatusRework;

    /**
     * 自动派单开始时间 格式：7:00
     */
    private String autoTimeStart;

    /**
     * 自动派单结束时间 格式: 21:30
     */
    private String autoTimeEnd;

    /**
     * 自动派单时间（前端用）
     */
    private String autoTimeStr;

    /**
     * 最大返修单量
     */
    private Integer reworkLimit;

    /**
     * 直营轮次单量
     */
    private Integer directSaleCount;

    /**
     * 非直营轮次单量
     */
    private Integer nonDirectCount;

    /**
     * 派单方式：10平台指派，20服务商派单
     */
    private Integer distributeWay;

    /**
     * 轮次开关 1关，2开
     */
    private Integer roundsEnable;

    /**
     * 启用默认：1停用，2启用
     */
    private Integer status;

    /**
     * 创建人
     */
    private String creater;

    /**
     * 最新修改人
     */
    private String updater;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 最新修改时间
     */
    private Date updateTime;

    /**
     * 工程师派单权重关联配置
     */
    private List<DistributeWeightRelation> distributeWeightRelationList;

    /**
     * 抢单配置关联表
     */
    private List<RobOrderRelation> robOrderRelationList;

    /**
     * 抢单状态
     */
    private Integer robOrderStatus;

    /**
     * 主键
     */
    private Integer configId;

    /**
     * 轮次单量前端显示
     *
     * @return
     */
    public String getRoundsOrderCountDescribe() {

        return MessageFormat.format("{0} - {1}",
                Objects.isNull(this.directSaleCount) ? "" : this.directSaleCount.toString(),
                Objects.isNull(this.nonDirectCount) ? "" : this.nonDirectCount.toString());
    }

}
